/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package funda.appius.Catalogo.Conceptos;

import funda.appius.arquitectura.AbstractFunda;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author payo
 */
public class Concepto extends AbstractFunda{
    
    private int Numero;
    private String Especificacion, Descripcion, Unidad;
    private double PrecioUnitario, Importe, Cantidad;
    private int IdConcepto,IdSeccionConcepto;

    public double getCantidad() {
        return Cantidad;
    }

    public void setCantidad(double Cantidad) {
        this.Cantidad = Cantidad;
    }

    public String getDescripcion() {
        return Descripcion;
    }

    public void setDescripcion(String Descripcion) {
        this.Descripcion = Descripcion;
    }

    public String getEspecificacion() {
        return Especificacion;
    }

    public void setEspecificacion(String Especificacion) {
        this.Especificacion = Especificacion;
    }

    public int getIdConcepto() {
        return IdConcepto;
    }

    public void setIdConcepto(int IdConcepto) {
        this.IdConcepto = IdConcepto;
    }

    public int getIdSeccionConcepto() {
        return IdSeccionConcepto;
    }

    public void setIdSeccionConcepto(int IdSeccionConcepto) {
        this.IdSeccionConcepto = IdSeccionConcepto;
    }

    public double getImporte() {
        return Importe;
    }

    public void setImporte(double Importe) {
        this.Importe = Importe;
    }

    public int getNumero() {
        return Numero;
    }

    public void setNumero(int Numero) {
        this.Numero = Numero;
    }

    public double getPrecioUnitario() {
        return PrecioUnitario;
    }

    public void setPrecioUnitario(double PrecioUnitario) {
        this.PrecioUnitario = PrecioUnitario;
    }

    public String getUnidad() {
        return Unidad;
    }

    public void setUnidad(String Unidad) {
        this.Unidad = Unidad;
    }
    
    
    
    public Concepto()
    {
        super();
    }

    public Concepto(int Numero, String Especificacion, String Descripcion, String Unidad, double PrecioUnitario,double Cantidad, int IdSeccionConcepto) {
        super();
        this.Numero = Numero;
        this.Especificacion = Especificacion;
        this.Descripcion = Descripcion;
        this.Unidad = Unidad;
        this.PrecioUnitario = PrecioUnitario;
        this.Cantidad = Cantidad;
        this.Importe = Cantidad * PrecioUnitario;
        this.IdSeccionConcepto = IdSeccionConcepto;
        this.IdConcepto = Integer.parseInt(insertarId().toString()); 
    }
    
    @Override
    protected void fillFunda(ResultSet row) {
         try{
            int x =0;
            this.IdConcepto = row.getInt(++x);
            this.Numero = row.getInt(++x);
            this.Especificacion = row.getString(++x);
            this.Descripcion = row.getString(++x);
            this.Unidad = row.getString(++x);
            this.PrecioUnitario = (row.getDouble(++x));
            this.Importe = (row.getDouble(++x));
            this.Cantidad= row.getDouble(++x);
            this.IdSeccionConcepto = row.getInt(++x);
        }
        catch(Exception e){}
    }

    @Override
    protected void Comandos() {
        this.id = "IdConcepto";
        this.tabla = "concepto";
        this.strDelete = "DeleteConcepto";
        this.strInsertar = "InsertarConcepto";
        this.strInsertarId = "InsertarIdConcepto";
        this.strUpdate = "UpdateConcepto";
    }

    @Override
    public ArrayList<Object> getAtributos() {
        ArrayList<Object> lst = new ArrayList<Object>();
        lst.add(Numero);
        lst.add(Especificacion);
        lst.add(Descripcion);
        lst.add(Unidad);
        lst.add(PrecioUnitario);
        lst.add(Importe);
        lst.add(Cantidad);
        lst.add(IdSeccionConcepto);
        lst.add(IdConcepto);
        return lst;
    }
    
      @Override
    public Concepto get(Object id) {
        AbstractFunda abs = AbstractFunda.getAbstractFunda(new Concepto(),id,tabla,this.id);
        Concepto c = (Concepto)abs;
        return c;
    }
    
    public ArrayList<Concepto> getAll() {
        List<AbstractFunda> abs = AbstractFunda.getAll(tabla,id,this.getClass());
        ArrayList<Concepto> lst = new ArrayList<Concepto>();
        for(AbstractFunda af : abs)
            lst.add((Concepto)af);
        return lst;
    }
    
}
